Flutter 打包 android端 apk 您所在的位置:网站首页 ilauncher10 apk Flutter 打包 android端 apk

Flutter 打包 android端 apk

2023-03-16 14:44| 来源: 网络整理| 查看: 265

本次所记录的打包流程全部都是在Android Studio上完成,建议不要直接参考官方文档的打包流程,不然很大几率会出错

android studio终端生成签名文件 keytool -genkey -v -keystore /文件名字.jks -keyalg RSA -keysize 2048 -validity 有效时间 -alias 别名 复制代码

例:keytool -genkey -v -keystore D:/flutterPackageSignature/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign

genkey : 产生密钥 keystore : /key.jks :证书的存放路径和名字 keyalg RSA -keysize 2048 :使用 2048 位 RSA 算法对签名加密 validity 10000 :有效期时间,这里是 10000天 alias sign : 别名 sign

输入正确命令然后回车,即会请求输入密码(密码不要忘记)

11.png

此时运行正确的命令不出意外会在D:/flutterPackageSignature中生成一个key.jks文件,注意此文件不要上传分享给别人

项目配置

捕获.PNG

导入签名文件key.jks

在Flutter工程中/android/app目录下创建key文件夹,然后把sign.jks复制进来(注意保存在电脑本地的文件夹中还得有存在key.jks文件)

配置/android/app/build.gradle文件

在flutter的/android/app/build.gradle文件中的android前加入

def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 复制代码

在android里的signingConfigs加入release

signingConfigs { release { keyAlias 'sign' //别名 keyPassword '生成签名时输入的密码' storeFile file('D:/flutterPackageSignature/signfile.jks') //签名文件路径 storePassword '生成签名时输入的密码' } } buildTypes { release { signingConfig signingConfigs.release } } 复制代码 创建 key.properties 文件 storePassword= 刚刚创建密钥库时的密码 keyPassword= 刚刚创建密钥的密码 keyAlias=sign(别名) storeFile=D:/flutterPackageSignature/key.jks 生成apk

配置完成后在项目终端输入生成apk命令

flutter build apk --target-platform android-arm --split-per-abi(apk包)

或者

flutter build apk(相对上面那个命令,此命令打包的apk相对大一些)

或者

flutter build appbundle (aab包)

.PNG 当出现如图所示即打包成功,Build后为apk存放的路劲

生成apk过程遇到的一些坑 BUG1

enableR8istrue.png

如图,当出现图中bug时我们就检查项目的/android/gradle.properties文件,看是否存在android.enableR8=true(最好不要加上android.enableR8这行,但有时候默认会生成的,所以我们讲true改成false就可以解决此bug)

BUG2

enableR8isfalse.png

综上,当我们把true改为false时解决bug1,但是会出现图中的bug2

解决方法:将下图中的old部分换成new部分即可

捕获2.PNG

BUG3

项目中换取使用阿里镜像时buildscript repositories和allprojects repositories都需要更改,不然会出错

啊里镜像

maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } 复制代码 BUG 4

error.png

问题所在:此类基本上就是Gradle的配置需要改 解决方法:

参考BUG3,更换镜像 翻墙开全局模式 引用参考

Flutter 项目打包成 APK:juejin.cn/post/689411…

Flutter打包apk: wcdxg.com/2020/04/29/…

Flutter打包apk:www.jianshu.com/p/fabcfd621…

Flutter Andorid 真机或打包 APK 杂症记录:xie.infoq.cn/article/e85…



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有